package com.example.treehole.common;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import java.io.File;

/**
 * Spring MVC 配置类，用于配置跨域请求和静态资源映射。
 */
@Configuration
public class WebAppConfig implements WebMvcConfigurer {
    // 本地文件存储路径
    private String filePath = "file_home/";//="D:/img"

    //映射浏览器可以直接访问的本地路径
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        // 获取当前项目的根目录
        String path = System.getProperty("user.dir");
        // 注册静态资源映射
        registry.addResourceHandler("/common/upload/**").addResourceLocations("file:///" + path + File.separator + filePath);
    }

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                // 允许携带凭证
                .allowCredentials(true)
                // 允许所有来源的请求
                .allowedOriginPatterns("*")
                // 允许的请求方法
                .allowedMethods("GET", "POST")
                // 允许的请求头
                .allowedHeaders("*")
                // 跨域请求的有效期
                .maxAge(3600 * 24);
        WebMvcConfigurer.super.addCorsMappings(registry);
    }
}